home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1986-04-20 | 3.8 KB | 84 lines
1 REM WW 4/20/86 8 ON ERROR GOTO 9950:OPEN "F.3" AS #1 LEN=240:GOSUB 12000:ON ERROR GOTO 9900 10 CLEAR ,49152 11 AML=49152:SCREEN 0:KEY OFF:CLS 12 BLOAD"DECOM.BIN",AML:DECOMP=AML+6 14 LOCATE ,,0 20 CLS:PRINT"W":DEF SEG=&HB800:N1=PEEK(0):DEF SEG 22 CLS:PRINT"Q":DEF SEG=&HB800:N2=PEEK(0):DEF SEG 24 CLS:ICRT=0:IF N1=87 AND N2=81 THEN ICRT=1 26 IF ICRT>0 THEN WIDTH 40:CO1=7:CO2=0:CO3=0:GOSUB 4860:SHI=0 27 IF ICRT<1 THEN WIDTH 80:CO1=7:CO2=0:CO3=0:GOSUB 4860:SHI=18 28 POKE AML+4,ICRT:IF FP>0 THEN 80 30 ALOD=AML+5*256:BLOAD "LOGO.1",ALOD 32 ADZ=ALOD+6 34 GOSUB 1100:GOSUB 30000 36 CALL DECOMP 38 GOSUB 4860:GOSUB 31000 40 V=21:H=4:GOSUB 4800:GOSUB 4880 42 PRINT ">";:GOSUB 4860 44 PRINT " LOADING PROGRAM...PLEASE WAIT ";:GOSUB 4880: PRINT "<";:GOSUB 4860 50 OPEN "WD" FOR INPUT AS #1 70 INPUT #1,FI%:CLOSE #1 80 IF FI%>=0 THEN RUN "MAIN" 85 FOR I=1 TO 4000:NEXT I 90 RUN "INTRO" 99 END 1100 ANUM=ADZ:GOSUB 1300:POKE AML,LB:POKE AML+1,HB 1102 POKE AML+2,0:POKE AML+3,&HB0:IF ICRT>0 THEN POKE AML+3,&HB8 1104 POKE AML+4,ICRT:RETURN 1300 HB=INT(ANUM/256):LB=ANUM-HB*256:RETURN 1600 I$=INKEY$:IF I$=X$ THEN 1600 1610 RETURN 4800 LOCATE V,H+SHI:RETURN:REM VTAB,HTAB 4820 LOCATE CSRLIN,H+SHI:RETURN:REM HTAB 4860 COLOR CO1,CO2,CO3:RETURN:REM NORMAL 4880 COLOR CO1+16,CO2,CO3:RETURN:REM FLASH 9900 ER=ERR 9901 CLS:II=0:FOR IJ=1 TO N3:IF ER=ER%(IJ) THEN II=IJ:IJ=N3 9902 NEXT 9903 V=3:H=3:GOSUB 4800:PRINT"THE FOLLOWING ERROR HAS OCCURED:":V=V+2:GOSUB 4800:PRINT DQ$ER1$(II)DQ$ 9904 V=CSRLIN+3:GOSUB 4800:IF II>0 THEN 9908 9906 PRINT"PLEASE REPORT ERROR "ER:V=V+1:H=3:GOSUB 4800:PRINT"AT LINE "ERL" IN PROGRAM "DQ$"WW"DQ$:V=V+1:GOSUB 4800:PRINT"TO NOLO PRESS (415-549-1976).":V=V+2:GOSUB 4800:PRINT"PRESS ANY KEY TO END":GOTO 9930 9908 PRINT"PLEASE CHECK...":V=V+1:H=3:GOSUB 4800:PRINT ER2$(II):V=V+1:GOSUB 4800:PRINT ER3$(II) 9910 V=CSRLIN+3:GOSUB 4800:PRINT"THEN EITHER RERUN THE PROGRAM OR" 9920 V=V+2:GOSUB 4800:PRINT "PRESS ANY KEY TO RESUME" 9930 I$=INKEY$:IF I$=X$ THEN 9930 9940 IF II>0 THEN CLS:RESUME 9949 SYSTEM 9950 V=2:H=1:CLS:GOSUB 4800:PRINT"Sorry, but there has been a problem":V=V+2:GOSUB 4800:PRINT"loading BASIC. Do the following:":GOSUB 9990 9952 V=V+1:GOSUB 4800:PRINT"Step 1: exit BASIC by typing":V=V+2:H=12:GOSUB 4800:PRINT"SYSTEM":GOSUB 9990 9954 H=1:V=V+1:GOSUB 4800:PRINT"Step 2: Reload BASIC by typing:":V=V+1:H=3:GOSUB 4800:PRINT"BASIC/S:240 (OR BASICA/S:240)" 9956 H=1:V=V+1:GOSUB 4800:PRINT"If you have copied BASIC to your ":V=V+1:GOSUB 4800:PRINT"WillWriter diskette, just type WW":V=V+1:GOSUB 4800:PRINT"(or WWA if you have BASICA).":GOSUB 9990 9959 END 9990 H=1:V=V+2:GOSUB 4800:PRINT STRING$(38,"*"):RETURN 12000 DQ$=CHR$(34):N3=11:DIM ER1$(N3),ER2$(N3),ER3$(N3),ER%(N3) 12002 ER1$(0)="PROGRAM (OR UNIDENTIFIABLE) ERROR" 12010 ER%(1)=7:ER1$(1)="OUT OF MEMORY":ER2$(1)="YOUR SYSTEM MEMORY; 128K RAM IS":ER3$(1)="REQUIRED (SOME COMPATIBLES NEED 256K)" 12020 ER%(2)=25:ER1$(2)="DEVICE FAULT":ER2$(2)="YOUR HARDWARE/INTERFACE CONNECTIONS" 12030 ER%(3)=27:ER1$(3)="OUT OF PAPER":ER2$(3)="PAPER SUPPLY & PRINTER ON/OFF SWITCH" 12040 ER%(4)=53:ER1$(4)="FILE NOT FOUND":ER2$(4)="THAT THE WILLWRITER DISKETTE IS OK":ER3$(4)="AND STILL IN DRIVE." 12050 ER%(5)=57:ER1$(5)="DEVICE I/O ERROR":ER2$(5)="DISK DRIVE AND PRINTER CONNECTIONS" 12060 ER%(6)=61:ER1$(6)="DISK FULL":ER2$(6)="THAT WW DISKETTE IS IN DRIVE, AND":ER3$(6)="THAT NO FILES HAVE BEEN ADDED TO IT" 12070 ER%(7)=67:ER1$(7)="TOO MANY FILES":ER2$(7)="THAT WW DISKETTE IS IN DRIVE, AND":ER3$(7)="THAT NO FILES HAVE BEEN ADDED TO IT" 12080 ER%(8)=68:ER1$(8)="DEVICE UNAVAILABLE":ER2$(8)="DISK DRIVE" 12090 ER%(9)=70:ER1$(9)="DISK WRITE PROTECT":ER2$(9)="DISKETTE FOR A WRITE PROTECT TAB.":ER3$(9)="(PROGRAM WON'T WORK ONE IN PLACE)" 12100 ER%(10)=71:ER1$(10)="DISK NOT READY":ER2$(10)="THAT DISKETTE IS IN DRIVE AND THAT":ER3$(10)="THE DISK DRIVE DOOR IS CLOSED" 12110 ER%(11)=72:ER1$(11)="DISK MEDIA ERROR":ER2$(11)="DISKETTE FOR IMPERFECTIONS" 12999 RETURN 30000 ST$="":FOR I=1 TO 240:ST$=ST$+"X":NEXT I 30002 ST1$=ST$:ST2$=ST1$:ST3$=ST2$:ST4$=ST3$ 30010 IF LEN(ST4$)<>240 THEN END 30020 AD1=VARPTR(ST1$):AD2=VARPTR(ST2$):AD3=VARPTR(ST3$):AD4=VARPTR(ST4$) 30030 LB=PEEK(AD1+1):HB=PEEK(AD1+2):POKE &HC082,LB:POKE &HC083,HB 30032 LB=PEEK(AD2+1):HB=PEEK(AD2+2):POKE &HC084,LB:POKE &HC085,HB 30034 LB=PEEK(AD3+1):HB=PEEK(AD3+2):POKE &HC086,LB:POKE &HC087,HB 30036 LB=PEEK(AD4+1):HB=PEEK(AD4+2):POKE &HC088,LB:POKE &HC089,HB 30038 RETURN 31000 CLS:JF=0:TT$=ST1$:GOSUB 31050:TT$=ST2$:GOSUB 31050:TT$=ST3$:GOSUB 31050 31010 JF=1:TT$=ST4$:GOSUB 31050:RETURN 31050 FOR II=1 TO 6:H=1:GOSUB 4820:IF ICRT<1 OR (II<>6 OR JF<>1) THEN PRINT MID$(TT$,40*II-39,40); 31051 IF JF>0 AND II=6 THEN 31054 31052 IF ICRT <1 THEN PRINT 31054 NEXT:RETURN